package com.wish.g3.account.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 收款计划表
 * </p>
 *
 * @author wish
 * @since 2022-11-25
 */
@TableName("tb_cw_receipt_plan")
public class CwReceiptPlan implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 收款单号
     */
    private String receiptOrderNo;

    /**
     * 商户ID
     */
    private Long businessId;

    /**
     * 合同ID
     */
    private Long contractId;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 合同类型	,"1：收房合同，
2：出房合同"
     */
    private Integer contractType;

    /**
     * 解约协议ID（解约时才有，收房是收房解约协议，出房是出房解约协议）
     */
    private Long tTerminationId;

    /**
     * 楼盘ID
     */
    private Long premiseId;

    /**
     * 小区(使用楼盘名)
     */
    private String premiseName;

    /**
     * 房源ID
     */
    private String roomId;

    /**
     * 房源编号
     */
    private String roomCode;

    /**
     * 承租房间(使用房源名称)
     */
    private String roomName;

    /**
     * 业主ID
     */
    private Long ownerId;

    /**
     * 业主姓名
     */
    private String ownerName;

    /**
     * 租客ID
     */
    private Long tenantId;

    /**
     * 租客姓名(面向业主收款时，为空)
     */
    private String tenantName;

    /**
     * 收款类型	,1:房租收款 2：租务收款 3：解约结算收款 4：续约结算收款
     */
    private Integer receiptType;

    /**
     * 收款状态	1:未收款 2：已收款 3：已中止  4：已冻结（未收款的时候，才会变成已冻结，所以恢复冻结状态的时候，是恢复成未收款状态）
     */
    private Integer skStatus;

    /**
     * 账单类型（金融属性）,"1：分期变更
 2：租约保理变更
 3：退租变更
 4：普通账单(正常房租租务计划)"	参照枚举CollectionPlanZdType
     */
    private Integer billType;

    /**
     * 款项（费用类型）	,1:水费 2：电费，3：煤/燃气费，80：租金，81：押金，90：解约结算，99:其它
     */
    private Integer itemType;

    /**
     * 其它款项	,款项为其它的时候，输入
     */
    private String otherItemName;

    /**
     * 支付金额（应收金额，房租时=不含税净价+税费）
     */
    private BigDecimal paymentAmount;

    /**
     * 实收金额
     */
    private BigDecimal realPaymentAmount;

    /**
     * 选择账期（跟随的第几期房租对应的收款计划ID）,跟随一起付款的时候，应付日期选择设置为同一天
     */
    private Long withReceiptPlanId;

    /**
     * 账期开始日
     */
    private LocalDateTime paymentDaysBegin;

    /**
     * 账期截止日
     */
    private LocalDateTime paymentDaysEnd;

    /**
     * 预定收款日期
     */
    private LocalDateTime collectionDate;

    /**
     * 实际收款日期
     */
    private LocalDateTime realCollectionDate;

    /**
     * 第几期（房租收款的时候）
     */
    private Integer receiptNumber;

    /**
     * 线下支付方式（直接录入已收款的收款计划时选择的）	,1:快捷同，2：支付宝，3：微信，4：现金，5：银行卡转账，6：POS机刷卡，99：其它
     */
    private Integer payMethod;

    /**
     * 其它支付方式	,支付方式为其它的时候，输入
     */
    private String otherPayMethod;

    /**
     * 支付流水号（线下直接录入收款的时候输入，不是线上的流水号）
     */
    private String payFlowNo;

    /**
     * 账期房租金额（净价，不含税）
     */
    private BigDecimal rentalPrice;

    /**
     * 税费
     */
    private BigDecimal tax;

    /**
     * 操作人
     */
    private String operationUser;

    /**
     * 备注
     */
    private String remark;

    /**
     * 预留字段1
     */
    private BigDecimal reserve1;

    /**
     * 预留字段2
     */
    private Integer reserve2;

    /**
     * 预留字段3
     */
    private String reserve3;

    /**
     * 预留字段4
     */
    private String reserve4;

    /**
     * 预留字段5
     */
    private String reserve5;

    /**
     * 删除标识	,0:未删除，1：删除
     */
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新用户ID
     */
    private Long updateUserid;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getReceiptOrderNo() {
        return receiptOrderNo;
    }

    public void setReceiptOrderNo(String receiptOrderNo) {
        this.receiptOrderNo = receiptOrderNo;
    }
    public Long getBusinessId() {
        return businessId;
    }

    public void setBusinessId(Long businessId) {
        this.businessId = businessId;
    }
    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }
    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }
    public Integer getContractType() {
        return contractType;
    }

    public void setContractType(Integer contractType) {
        this.contractType = contractType;
    }
    public Long gettTerminationId() {
        return tTerminationId;
    }

    public void settTerminationId(Long tTerminationId) {
        this.tTerminationId = tTerminationId;
    }
    public Long getPremiseId() {
        return premiseId;
    }

    public void setPremiseId(Long premiseId) {
        this.premiseId = premiseId;
    }
    public String getPremiseName() {
        return premiseName;
    }

    public void setPremiseName(String premiseName) {
        this.premiseName = premiseName;
    }
    public String getRoomId() {
        return roomId;
    }

    public void setRoomId(String roomId) {
        this.roomId = roomId;
    }
    public String getRoomCode() {
        return roomCode;
    }

    public void setRoomCode(String roomCode) {
        this.roomCode = roomCode;
    }
    public String getRoomName() {
        return roomName;
    }

    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }
    public Long getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(Long ownerId) {
        this.ownerId = ownerId;
    }
    public String getOwnerName() {
        return ownerName;
    }

    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }
    public Long getTenantId() {
        return tenantId;
    }

    public void setTenantId(Long tenantId) {
        this.tenantId = tenantId;
    }
    public String getTenantName() {
        return tenantName;
    }

    public void setTenantName(String tenantName) {
        this.tenantName = tenantName;
    }
    public Integer getReceiptType() {
        return receiptType;
    }

    public void setReceiptType(Integer receiptType) {
        this.receiptType = receiptType;
    }
    public Integer getSkStatus() {
        return skStatus;
    }

    public void setSkStatus(Integer skStatus) {
        this.skStatus = skStatus;
    }
    public Integer getBillType() {
        return billType;
    }

    public void setBillType(Integer billType) {
        this.billType = billType;
    }
    public Integer getItemType() {
        return itemType;
    }

    public void setItemType(Integer itemType) {
        this.itemType = itemType;
    }
    public String getOtherItemName() {
        return otherItemName;
    }

    public void setOtherItemName(String otherItemName) {
        this.otherItemName = otherItemName;
    }
    public BigDecimal getPaymentAmount() {
        return paymentAmount;
    }

    public void setPaymentAmount(BigDecimal paymentAmount) {
        this.paymentAmount = paymentAmount;
    }
    public BigDecimal getRealPaymentAmount() {
        return realPaymentAmount;
    }

    public void setRealPaymentAmount(BigDecimal realPaymentAmount) {
        this.realPaymentAmount = realPaymentAmount;
    }
    public Long getWithReceiptPlanId() {
        return withReceiptPlanId;
    }

    public void setWithReceiptPlanId(Long withReceiptPlanId) {
        this.withReceiptPlanId = withReceiptPlanId;
    }
    public LocalDateTime getPaymentDaysBegin() {
        return paymentDaysBegin;
    }

    public void setPaymentDaysBegin(LocalDateTime paymentDaysBegin) {
        this.paymentDaysBegin = paymentDaysBegin;
    }
    public LocalDateTime getPaymentDaysEnd() {
        return paymentDaysEnd;
    }

    public void setPaymentDaysEnd(LocalDateTime paymentDaysEnd) {
        this.paymentDaysEnd = paymentDaysEnd;
    }
    public LocalDateTime getCollectionDate() {
        return collectionDate;
    }

    public void setCollectionDate(LocalDateTime collectionDate) {
        this.collectionDate = collectionDate;
    }
    public LocalDateTime getRealCollectionDate() {
        return realCollectionDate;
    }

    public void setRealCollectionDate(LocalDateTime realCollectionDate) {
        this.realCollectionDate = realCollectionDate;
    }
    public Integer getReceiptNumber() {
        return receiptNumber;
    }

    public void setReceiptNumber(Integer receiptNumber) {
        this.receiptNumber = receiptNumber;
    }
    public Integer getPayMethod() {
        return payMethod;
    }

    public void setPayMethod(Integer payMethod) {
        this.payMethod = payMethod;
    }
    public String getOtherPayMethod() {
        return otherPayMethod;
    }

    public void setOtherPayMethod(String otherPayMethod) {
        this.otherPayMethod = otherPayMethod;
    }
    public String getPayFlowNo() {
        return payFlowNo;
    }

    public void setPayFlowNo(String payFlowNo) {
        this.payFlowNo = payFlowNo;
    }
    public BigDecimal getRentalPrice() {
        return rentalPrice;
    }

    public void setRentalPrice(BigDecimal rentalPrice) {
        this.rentalPrice = rentalPrice;
    }
    public BigDecimal getTax() {
        return tax;
    }

    public void setTax(BigDecimal tax) {
        this.tax = tax;
    }
    public String getOperationUser() {
        return operationUser;
    }

    public void setOperationUser(String operationUser) {
        this.operationUser = operationUser;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public BigDecimal getReserve1() {
        return reserve1;
    }

    public void setReserve1(BigDecimal reserve1) {
        this.reserve1 = reserve1;
    }
    public Integer getReserve2() {
        return reserve2;
    }

    public void setReserve2(Integer reserve2) {
        this.reserve2 = reserve2;
    }
    public String getReserve3() {
        return reserve3;
    }

    public void setReserve3(String reserve3) {
        this.reserve3 = reserve3;
    }
    public String getReserve4() {
        return reserve4;
    }

    public void setReserve4(String reserve4) {
        this.reserve4 = reserve4;
    }
    public String getReserve5() {
        return reserve5;
    }

    public void setReserve5(String reserve5) {
        this.reserve5 = reserve5;
    }
    public Boolean getDelFlg() {
        return delFlg;
    }

    public void setDelFlg(Boolean delFlg) {
        this.delFlg = delFlg;
    }
    public Long getCreateUserid() {
        return createUserid;
    }

    public void setCreateUserid(Long createUserid) {
        this.createUserid = createUserid;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public Long getUpdateUserid() {
        return updateUserid;
    }

    public void setUpdateUserid(Long updateUserid) {
        this.updateUserid = updateUserid;
    }
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "TbCwReceiptPlan{" +
            "id=" + id +
            ", receiptOrderNo=" + receiptOrderNo +
            ", businessId=" + businessId +
            ", contractId=" + contractId +
            ", contractNo=" + contractNo +
            ", contractType=" + contractType +
            ", tTerminationId=" + tTerminationId +
            ", premiseId=" + premiseId +
            ", premiseName=" + premiseName +
            ", roomId=" + roomId +
            ", roomCode=" + roomCode +
            ", roomName=" + roomName +
            ", ownerId=" + ownerId +
            ", ownerName=" + ownerName +
            ", tenantId=" + tenantId +
            ", tenantName=" + tenantName +
            ", receiptType=" + receiptType +
            ", skStatus=" + skStatus +
            ", billType=" + billType +
            ", itemType=" + itemType +
            ", otherItemName=" + otherItemName +
            ", paymentAmount=" + paymentAmount +
            ", realPaymentAmount=" + realPaymentAmount +
            ", withReceiptPlanId=" + withReceiptPlanId +
            ", paymentDaysBegin=" + paymentDaysBegin +
            ", paymentDaysEnd=" + paymentDaysEnd +
            ", collectionDate=" + collectionDate +
            ", realCollectionDate=" + realCollectionDate +
            ", receiptNumber=" + receiptNumber +
            ", payMethod=" + payMethod +
            ", otherPayMethod=" + otherPayMethod +
            ", payFlowNo=" + payFlowNo +
            ", rentalPrice=" + rentalPrice +
            ", tax=" + tax +
            ", operationUser=" + operationUser +
            ", remark=" + remark +
            ", reserve1=" + reserve1 +
            ", reserve2=" + reserve2 +
            ", reserve3=" + reserve3 +
            ", reserve4=" + reserve4 +
            ", reserve5=" + reserve5 +
            ", delFlg=" + delFlg +
            ", createUserid=" + createUserid +
            ", createTime=" + createTime +
            ", updateUserid=" + updateUserid +
            ", updateTime=" + updateTime +
        "}";
    }
}
